package mybatisgen.demo.service;

public class NamingConventionUtils {

    /**
     * 转换字符串以符合Java命名规范的驼峰命名法。
     * 去除以't_'或'T_'开头的前缀，并将'_'后的第一个字母大写，同时去除'_'。
     *
     * @param input 输入的字符串
     * @return 转换后的驼峰命名法字符串
     */
    public static String convertToCamelCase(String input) {
        if (input == null || input.isEmpty()) {
            return input;
        }

        // 去除以't_'或'T_'开头的前缀
        if (input.startsWith("t_") || input.startsWith("T_")) {
            input = input.substring(2);
        }

        // 使用StringBuilder进行字符串拼接，效率更高
        StringBuilder camelCase = new StringBuilder();
        boolean nextUpperCase = true; // 标记下一个字符是否需要大写

        for (int i = 0; i < input.length(); i++) {
            char c = input.charAt(i);
            if (c == '_') {
                nextUpperCase = true; // 遇到'_'则下一个字符需要大写
            } else {
                if (nextUpperCase) {
                    camelCase.append(Character.toUpperCase(c)); // 转换为大写
                    nextUpperCase = false;
                } else {
                    camelCase.append(c); // 直接添加字符
                }
            }
        }

        return camelCase.toString();
    }

    public static void main(String[] args) {
        String example = "t_Sys_xsdda";
        String result = convertToCamelCase(example);
        System.out.println(result); // 应输出 SysXsdda
    }
}